package com.yodel.www.tenhou;

import android.util.Log;

/**
 * LogCat への出力を行うためのユーティリティクラス。
 *
 */
public final class LogUtils {

	/**
	 * コンストラクタ
	 */
	private LogUtils() {
	}

	/**
	 * タグ名称(アプリケーション名称)
	 */
	private static final String APP_NAME = "TenhouWatcher";
	private static final boolean DEBUG_FLAG = true;

	/**
	 * vervose レベルで指定したメッセージをログ出力する。
	 * @param message
	 */
	public static void v(final String message) {
		if (DEBUG_FLAG) {
			Log.v(APP_NAME, message);
		}
	}

	/**
	 * vervose レベルで指定したメッセージおよびエラーのスタックトレースをログ出力する。
	 * @param message
	 */
	public static void v(final String message, Throwable e) {
		if (DEBUG_FLAG) {
			Log.v(APP_NAME, message, e);
		}
	}

	/**
	 * debug レベルで指定したメッセージをログ出力する。
	 *
	 * @param message
	 */
	public static void d(final String message) {
		if (DEBUG_FLAG) {
			Log.d(APP_NAME, message);
		}
	}

	/**
	 * debug レベルで指定したメッセージおよびエラーのスタックトレースをログ出力する。
	 *
	 * @param message
	 */
	public static void d(final String message, Throwable e) {
		if (DEBUG_FLAG) {
			Log.d(APP_NAME, message, e);
		}
	}

	/**
	 * info レベルで指定したメッセージをログ出力する。
	 *
	 * @param message
	 */
	public static void i(final String message) {
		if (DEBUG_FLAG) {
			Log.i(APP_NAME, message);
		}
	}

	/**
	 * info レベルで指定したメッセージおよびエラーのスタックトレースをログ出力する。
	 *
	 * @param message
	 */
	public static void i(String message, Throwable e) {
		if (DEBUG_FLAG) {
			Log.i(APP_NAME, message, e);
		}
	}

	/**
	 * warn レベルで指定したメッセージをログ出力する。
	 *
	 * @param message
	 */
	public static void w(String message) {
		if (DEBUG_FLAG) {
			Log.w(APP_NAME, message);
		}
	}

	/**
	 * warn レベルで指定したメッセージおよびエラーのスタックトレースをログ出力する。
	 *
	 * @param message
	 */
	public static void w(String message, Throwable e) {
		if (DEBUG_FLAG) {
			Log.w(APP_NAME, message, e);
		}
	}

	/**
	 * error レベルで指定したメッセージをログ出力する。
	 *
	 * @param message
	 */
	public static void e(String message) {
		if (DEBUG_FLAG) {
			Log.e(APP_NAME, message);
		}
	}

	/**
	 * error レベルで指定したメッセージおよびエラーのスタックトレースをログ出力する。
	 *
	 * @param message
	 */
	public static void e(String message, Throwable e) {
		if (DEBUG_FLAG) {
			Log.e(APP_NAME, message, e);
		}
	}
}
